﻿using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using K9Nano.Application;
using K9Nano.Authentication;
using K9Nano.Web.Accounts.Dto;

namespace K9Nano.Web.Accounts
{
    public interface IRoleCurdAppService: ICurdApplicationService<Role, RoleCreateDto, RoleCreateDto, RoleItemDto, RolePagedInputDto, Guid>
    {
        Task<IReadOnlyList<RoleItemDto>> ListAsync(string api, string[] roles, CancellationToken cancellation = default);
        ValueTask<IReadOnlyList<string>> GetRolesInResourceAsync(string api, string resource, CancellationToken cancellation);
    }
}